跳到主要内容

Flet v0.27.0 版本发布公告

· 阅读需 7 分钟
Feodor Fitsner

Flet 0.27.0 现已发布,带来了令人兴奋的新功能和改进!

  • iOS 打包和签名更新 – 确保符合 App Store Connect 验证要求。
  • 减少启动延迟 – 桌面应用程序的初始启动速度更快。
  • 更快的增量重建 – 通过更快的迭代时间提高开发效率。
  • 增强的下拉菜单控件 – 改进的功能和用户体验。
  • 错误修复和稳定性改进 – 各种修复以提高整体性能和可靠性。

如何升级

运行以下命令升级 Flet:

pip install 'flet[all]' --upgrade
备注

[all]是一个“额外”说明符,它告诉 pip 安装或升级所有flet包:fletflet-cliflet-desktopflet-web

在你的pyproject.toml中将flet包版本提升到0.27.0(或者完全删除它以使用最新版本)。

改进的 iOS 打包

  • 第三方 Flet 应用程序依赖项(也称为“站点包”,如numpypandasflet等)现在捆绑在一个框架内,确保 Xcode 正确签署所有文件并通过 App Store Connect 验证。
  • 新的flet build选项用于正确的 iOS 包签名。
  • 用于打包和部署 iOS 应用程序的全面分步文档。了解更多!

提高桌面应用程序的启动性能

目前,在为 macOS、Windows 和 Linux 打包时,第三方 Flet 应用程序依赖项(例如numpypandasflet等),也称为站点包,被捆绑在 app.zip 工件内。这可能会导致启动延迟,有时会很明显,因为应用程序在启动前需要将工件提取到用户的文件系统中。

在 Flet 0.27.0 中,站点包现在以未打包状态直接复制到应用程序包中,而不是压缩到 app.zip 中。这一变化显著减少了首次启动时间。

更快的增量重建

如果构建配置的某些部分保持不变,flet build命令会尝试跳过或优化特定的构建管道步骤(例如重新安装 Flet 应用程序依赖项),减少连续构建的总体完成时间。

更快的构建意味着更快乐的开发者! 😄

Pyodide 0.27.2

Pyodide 0.27.2 基于 Python 3.12,对外函数接口(FFI)有一些重大的性能改进。

Flet 现在在所有打包平台上支持 Python 3.12。

下一站是 Python 3.13!

增强的Dropdown控件。

从 0.27.0 版本开始,Flet 对Dropdown控件使用DropdownMenu flutter 小部件,这是之前使用的 DropdownButton 的 Material 3 版本。除了增强的外观和感觉之外,它还允许根据文本输入过滤列表或在菜单列表中搜索一个项目。

上一个 Dropdown 实现的一些属性在新版本中不可用,并被“存根化”——它们不会破坏你的程序,但也不会做任何事情。请在此处查看已弃用属性的列表[/docs/controls/dropdown/#deprecated-dropdown-properties-and-events]。

上一个版本的 Dropdown 控件可作为DropdownM2控件使用,并将在 Flet 0.30.0 中删除。

💥 重大变化

flet build命令

  • --team选项重命名为--ios-team-id
  • --include-packages已被删除。只需将扩展包添加到你的pyproject.toml文件的dependencies部分:https://flet.dev/docs/extend/built-in-extensions
  • 删除了--cleanup-on-compile,并添加了两个新选项来分别清理应用程序和第三方站点包:--cleanup-app--cleanup-packages。另外两个选项:--cleanup-app-files--cleanup-package-files--cleanup-*一起使用,并允许指定要从应用程序和站点包中排除的 glob 列表。
  • tool.flet.build_arch重命名为tool.flet.target_arch

删除 v0.24.0 中的弃用项

在 Flet 0.24.0 中弃用的以下项目已被删除:https://flet.dev/blog/flet-v-0-24-release-announcement#deprecations

CupertinoCheckbox.inactive_color属性

CupertinoCheckboxinactive_color属性已被删除,取而代之的是fill_color

其他变化

完整的更改列表可以在CHANGELOG中找到。

新功能

  • feat: ReorderableListView控件(#4865)
  • feat: 实现Container.dark_theme属性(#4857)
  • 升级到 Pyodide 0.27 以支持httpx(#4840)
  • 删除CupertinoCheckbox.inactive_color,取而代之的是fill_color(#4837)
  • feat: flet build:使用配置文件签署 iOS 应用程序归档(.ipa),弃用--team选项(#4869)
  • feat: flet doctor命令行命令(#4803)
  • feat: 实现按钮主题(对于ElevatedButtonOutlinedButtonTextButtonFilledButtonIconButton)(#4872)
  • feat: ControlEvent.data应该是Optional[str]类型,并默认为None(#4786)
  • feat: flet build:添加--source-packages以允许从源发行版安装某些 Python 包(#4762)

错误修复

  • 修复:禁用 stdout 日志的 rich 的 Markup(#4795)
  • 修复:设置SearchBar.bar_border_side在视觉上未被遵守(#4767)
  • 修复:下拉菜单:长选项导致向下箭头溢出(#4838)
  • 修复:CupertinoSlider 初始化不允许值小于零/大于 1(#4853)
  • 修复:相同的代码在 Flet APP/Web/PC 本地显示不同的外观。(#4855)
  • 修复:变换比例会呈现灰色屏幕(#4759)
  • 修复:在 manifest.json 中使用带重音的字符时出现 UnicodeDecodeError(#4713)
  • 修复:实现SearchBar.blur()以通过编程方式取消聚焦栏(#4827)
  • 修复:禁用 flet-cli stdout 日志的 markup(#4796)

结论

升级到 Flet 0.27.0,测试你的应用程序,并让我们知道你对我们添加的新功能的感受。

如果你有任何问题,请加入Flet Discord 服务器或在Flet GitHub 讨论上创建一个新线程。

快乐地使用 Flet!👾